{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "chronic-tunisia",
   "metadata": {},
   "source": [
    "## Introduction - Variational quantum regression\n",
    "*Copyright (c) 2022 Institute for Quantum Computing, Baidu Inc. All Rights Reserved.*\n",
    "\n",
    "Regression analysis（RA）is a statistical method used to quantitatively estimate the interrelationship among multiple variables. There are different types of regression models based on the number of independent variables, named single- and multiple-variable regression, and distinct relationships among dependent and independent variables, such as linear and polynomial regression. RA is widely applied to build up the causal connections between variables in the physical datasets, which then could be accessed to determine and predict the outcomes from a further unknown data configuration (such as predicting population growth trends). It plays a significant role in the development of scientific aspects.\n",
    "\n",
    "Variational quantum regression (VQR) is a hybrid quantum-classical algorithm embedded in the supervised-learning framework. It combines the advantages from both the classical and quantum aspects. By encoding the classical data into a quantum state followed by an evolution of the state via a quantum circuit, we could successively adjust the parameters of the circuit based on some classical optimization method (e.g. gradient decent) to minimize the regression loss, and at last derive the explicit expression that best fits the dataset.\n",
    "\n",
    "In this tutorial, we introduce the VQR model based on the ``paddle_quantum`` library. We give a brief interpretation of the performance of using our regression model to analyze a physical Fish-species dataset in the following notebook. Please enjoy your journey."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "8429d648",
   "metadata": {},
   "source": [
    "## VQR in a nutshell\n",
    "\n",
    "We take a polynomial regression task as an example. The entire process can be separated into four main parts, including, **Input** -> **Pre-process** -> **Optimization** -> **Output**. Users only need to prepare a classical dataset (as a ``.csv`` file) and an order $k$ of the fitted function. Our program will initialize a corresponding model in the form of,\n",
    "$$y = c_0 + c_1x^1 + c_2 x^2 + \\cdots + c_k x^k,$$\n",
    "and at the same time, automatically combine the classical data and the iterative parameters (the coefficients $\\bm{c}$) into our quantum devices to run the optimization algorithm, until the cost function converges. Then the program output all the optimized parameters $\\bm{c}^*$ together with the regression model for further usages.\n",
    "\n",
    "The flowchart of VQR is as follows.\n",
    "\n",
    "![flowchart](./fig/flowchart_EN.png \"图1：变分量子回归流程图。\")\n",
    "<div style=\"text-align:center\">VQR flowchart</div>"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "2f0070ae",
   "metadata": {},
   "source": [
    "## Effectiveness of VQR model"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "62e20ab0",
   "metadata": {},
   "source": [
    "We usually use mean squared error (MSE), mean absolute error (MAE) and coefficient of determination (i.e., R-squared) to evaluate the regression performance. MSE can evaluate the degree of change of data. The smaller MSE is, the higher the accuracy of the fitting function is. MAE reflects the actual situation of predicted value error. The smaller MAE is, the better fitting performance is. The coefficient of determination measures the overall fitting accuracy of the regression function. The closer it is to $1$, the better the fitting performance will be.\n",
    "\n",
    "The results of fitting simple linear function and third-order polynomial function using Paddle Quantum are as follows. It can be seen that the coefficients of determination of both are close to $1$, indicating good fitting performance."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "098a09d6",
   "metadata": {},
   "source": [
    "![LR](./fig/Evaluation_Index.png \"Results of fitting\")\n",
    "Results of fitting: (a) is the result of fitting the linear function $y=x+c_1$ (c1 is a random noise belonging to $[-1,1)$); (b) is the result of fitting the third-order polynomial function $y=(2x-1)^3+c_2$ ($c_2$ is a random noise belonging to $[-1,1)$); (c) gives the values of some fitting evaluation indices."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "17661d06",
   "metadata": {},
   "source": [
    "## How to use\n",
    "\n",
    "<!-- 按照如下代码来配置环境： -->"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "b2e7a0e8",
   "metadata": {},
   "source": [
    "We have set two parameters that can be used directly for linear and polynomial regression. Just configure it in the configuration files `linear.toml` and `poly.toml`, then enter the command \n",
    "`python vqr_analysis.py --config linear(poly).toml`.\n",
    "\n",
    "Here, we give a version of a `poly` model to fit the relationship between the width and weight of different fishes. We set the fish width as an independent variable and set the fish weight as a dependent variable. First define the contents of the configuration file:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "eb7a2be4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Install paddle_quantum\n",
    "# %pip install paddle-quantum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "6c5b25a2",
   "metadata": {},
   "outputs": [],
   "source": [
    "poly_toml = r\"\"\"\n",
    "# The total configuration file of regression mode.\n",
    "# Input current task, should be either 'linear' or 'poly', for linear or polynomial regression.\n",
    "# The used regression model name.\n",
    "model_name = 'poly'\n",
    "# The saved path of 'dataset.csv'.\n",
    "data_file = './datasets/Fish.csv'\n",
    "# The list of independent variable names in the dataset.\n",
    "x_feature = ['Width']\n",
    "# The name of dependent variable.\n",
    "y_feature = ['Weight']\n",
    "# The number of optimized variables.\n",
    "num_variable = 3\n",
    "# Initialization of the optimized variables.\n",
    "init_params = [0.0, 0.45, 0.5, 0.5]\n",
    "# The number of required qubits. Defaults to 6.\n",
    "num_qubits = 6\n",
    "# The learning rate of optimization. Defaults to 0.1.\n",
    "learning_rate = 0.1\n",
    "# The total number of optimization iterations. Defaults to 100.\n",
    "iteration = 100\n",
    "# The print language. Defaults to 'CN'.\n",
    "language = 'EN'\n",
    "\"\"\""
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "bdd5e365",
   "metadata": {},
   "source": [
    "PaddleQuantum has data analysis package containing the quantum data analysis tools. Users can import `QRegressionModel` from `paddle_quantum.data_analysis.vqr` to perform regression analysis."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "53a5f59a",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\programs\\Anaconda\\envs\\pq_model\\lib\\site-packages\\paddle\\tensor\\creation.py:125: DeprecationWarning: `np.object` is a deprecated alias for the builtin `object`. To silence this warning, use `object` by itself. Doing this will not modify any behavior and is safe. \n",
      "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
      "  if data.dtype == np.object:\n"
     ]
    }
   ],
   "source": [
    "# import libs\n",
    "import os\n",
    "import warnings\n",
    "import toml\n",
    "\n",
    "warnings.filterwarnings('ignore')\n",
    "os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python'\n",
    "\n",
    "import paddle_quantum as pq\n",
    "from paddle_quantum.data_analysis.vqr import QRegressionModel\n",
    "poly_config = toml.loads(poly_toml)\n",
    "\n",
    "pq.set_backend(\"state_vector\")\n",
    "pq.set_dtype(\"complex128\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "f09ef329",
   "metadata": {},
   "source": [
    "### Polynomial regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5f6d56d5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model status: False. Current regression R2 score: -0.51802. \n",
      "The trained model: Weight = 0.00000 + (0.45000*Width^1) + (0.50000*Width^2) + (0.50000*Width^3). \n"
     ]
    }
   ],
   "source": [
    "# Initialize regression model\n",
    "poly_model = QRegressionModel(**poly_config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1dda91b6",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|##########| 100/100 [00:05<00:00, 19.99it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model status: True. Current regression R2 score: 0.74693. \n",
      "The trained model: Weight = -0.04323 + (1.20800*Width^1) + (1.83084*Width^2) + (2.22695*Width^3). \n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Training and testing\n",
    "fitted_poly_estimator = poly_model.regression_analyse()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "3432ba48",
   "metadata": {},
   "source": [
    "We could test the model online by modifying the configuration file and running the program."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "8f6f3b91",
   "metadata": {},
   "source": [
    "## Caution\n",
    "\n",
    "In the practical cases, the fitting performance could be influenced by different initialization values of the parameters. It has to consider various initialized strategies to achieve a best fitting."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "4857182b",
   "metadata": {},
   "source": [
    "## Reference information\n",
    "\n",
    "```\n",
    "@article{bravo2019variational,\n",
    "  title={Variational quantum linear solver},\n",
    "  author={Bravo-Prieto, Carlos and LaRose, Ryan and Cerezo, Marco and Subasi, Yigit and Cincio, Lukasz and Coles, Patrick J},\n",
    "  journal={arXiv preprint arXiv:1909.05820},\n",
    "  year={2019}\n",
    "}\n",
    "```\n",
    "\n",
    "```\n",
    "@article{chicco2021coefficient,\n",
    "  title={The coefficient of determination R-squared is more informative than SMAPE, MAE, MAPE, MSE and RMSE in regression analysis evaluation},\n",
    "  author={Chicco, Davide and Warrens, Matthijs J and Jurman, Giuseppe},\n",
    "  journal={PeerJ Computer Science},\n",
    "  volume={7},\n",
    "  pages={e623},\n",
    "  year={2021},\n",
    "  publisher={PeerJ Inc.}\n",
    "}\n",
    "```"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "135dcf17",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    "[1] Bravo-Prieto, Carlos, et al. \"Variational quantum linear solver.\" arXiv preprint arXiv:1909.05820 (2019).\n",
    "\n",
    "[2] Chicco, Davide, Matthijs J. Warrens, and Giuseppe Jurman. \"The coefficient of determination R-squared is more informative than SMAPE, MAE, MAPE, MSE and RMSE in regression analysis evaluation.\" PeerJ Computer Science 7 (2021): e623."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pq-dev",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.15 (default, Nov 10 2022, 13:17:42) \n[Clang 14.0.6 ]"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "vscode": {
   "interpreter": {
    "hash": "5fea01cac43c34394d065c23bb8c1e536fdb97a765a18633fd0c4eb359001810"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
